From 56daad9c3527a90cca2aee2854e1c26d18d74341 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 18 Mar 2021 10:43:24 -0700 Subject: [PATCH] ngl: ensure vertices buffer allocates enough vertices It's not guaranteed that a single power of two growth will be enough. Fixes #3770 --- gsk/ngl/gsknglbufferprivate.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gsk/ngl/gsknglbufferprivate.h b/gsk/ngl/gsknglbufferprivate.h index fc67bc9e0b..cbd21c83da 100644 --- a/gsk/ngl/gsknglbufferprivate.h +++ b/gsk/ngl/gsknglbufferprivate.h @@ -32,7 +32,7 @@ typedef struct _GskNglBuffer gsize buffer_len; guint count; GLenum target; - guint element_size; + gsize element_size; } GskNglBuffer; void gsk_ngl_buffer_init (GskNglBuffer *self, @@ -50,7 +50,8 @@ gsk_ngl_buffer_advance (GskNglBuffer *buffer, if G_UNLIKELY (buffer->buffer_pos + to_alloc > buffer->buffer_len) { - buffer->buffer_len *= 2; + while (buffer->buffer_pos + to_alloc > buffer->buffer_len) + buffer->buffer_len *= 2; buffer->buffer = g_realloc (buffer->buffer, buffer->buffer_len); } -- 2.30.2